1. Field of the Invention
The present invention generally relates to collaborative work by a plurality of participants using computers connected together via a network and, more particularly, to a real-time collaboration system in which each participant can have multiple views of the shared workspace, the views of the shared workspace of different participants are not necessarily the same or homogeneous and, further, the participants may have independent views of the workspace.
2. Background Description
Software for collaborative work, i.e., work involving many users and/or agents falls into two categories of use. One is termed asynchronous collaboration and the other, synchronous collaboration. Examples of software for asynchronous collaboration are groupware such as Lotus Notes and Microsoft Exchange. These along with other examples such as discussion groups where data is changed batchwise have the characteristic that neither do they require, nor do they particularly cater to the concurrent presence of many users and agents in the work environment. The work environment can include all users and agents that use computers that are connected to each other by networks such as the Internet or intranets. In contrast to software for asynchronous collaboration, software for synchronous collaboration is designed to cater to concurrent users and agents. It includes collaboration tools such as chat, concurrent whiteboards and the more sophisticated Same Time environment. These tools provide for real-time interaction among groups using the same shared workspace. Whatever be the workspacexe2x80x94document, spreadsheet, CAD drawing, etc.xe2x80x94it can be seen and modified by the collaborators, simultaneously. Modifications to the workspace are made available to all group members, immediately and synchronously.
Commonly available synchronous collaboration tools place significant restrictions on the kind of shared workspaces. Chat programs operate on text files and concurrent whiteboards operate of shared bitmap images. If a team of users wants to synchronously update, say, a spreadsheet using a concurrent whiteboard, then the team members have to individually update their local spreadsheet copies while staying in synchrony using images of the spreadsheet shared through the whiteboard. The ability to share a larger variety of workspaces than text files and bitmap images, and the ability to view and edit them using their native applications, i.e., collaborate by application sharing, has only recently become available. However, this ability comes with the restriction that all participants are allowed basically the same, shared view of the workspace. In some cases this commonality of view is described as WYSIWIS, i.e., What You See Is What I See. This restriction overlooks the need that effective collaboration may require individual users to have a plurality of views of widely different characteristics for both seeing and editing the synchronous, shared workspace.
Effective real-time collaboration among possibly widely dispersed participants requires making a multiplicity of different views of the shared workspace available to individual participants. In the invention disclosed herein, multiple views per participant are provided. Each view can be shared between a different subset of the participants. The subset can be a singleton set, which means that the view can be an independent viewxe2x80x94the participant with such a view can work with the synchronous workspace, alone or on his own. Within any set of participants sharing a view, the data seen through the view need not be identical for each participant. Since the view need not be homogeneous, i.e., it can be heterogeneous, then beyond some common data each participant can see different data through the view. The invention provides a user interface for the multiple views it supports and for their control. The interface includes a separate/shared window for each view, bookmarks for views, and control buttons/inputs. The invention provides support by which participants can align their views by, say, using a xe2x80x9cGOTOxe2x80x9d command from one view to another, or by overlaying one view on another. Participants can modify the workspace through views in synchronized manner provided that the sharing and access rights of the views allow them to do so. Sharing and access rights, and the authority to change other""s rights can be changed dynamically.
The invention provides a means for carrying out synchronous collaboration wherein collaboration participants are individually allowed a variety of views of the shared workspace. The invention includes a user interface for viewing. For simplicity, one participant per client or collaboration software frontend process running on a user""s machine is assumed in this introduction section. In this invention, participants of a collaboration session can choose to have any number of shared, synchronous views of a shared workspace wherein each view has more than one viewer sharing the view and each viewer has his own separate client for accessing the workspace (see assumption above). The number of such views can be zero, which means that the participants have at most either shared, synchronous views of a solitary viewer each or only independent, synchronous views of the shared workspace.
Each individual participant can see a shared view of the workspace in a separate window in his client. The shared view can be seen by participants in a homogeneous manner. In a homogeneous presentation, each participant sees the same portion of the workspace that other participants sharing the view see. The display characteristics, e.g., scale, font syntax can be different, but the data exposed in each participant""s window is the same. In a heterogeneous presentation each participant sees some data that is required to be common for all participants sharing the view. In addition, each participant can also see data that is not required to be common for all participants. The data that is required to be common can be delineated from other data by, say, a surrounding bounding box. Thus, for example, viewers can be sharing a text document in which the common data everyone is looking at is a paragraph. Some viewers can be seeing just the paragraph in their shared windows. Some viewers can be seeing the paragraph and some text lying below it. Some viewers can be seeing the paragraph and text above it. Other viewers can be seeing other combinations of the paragraph and text.
The display characteristics (syntactic characteristics) of each viewer""s heterogeneous shared window can be different. Within the common region of a shared view (e.g., the delineated region of a heterogeneous shared window and the entire region lying within a homogeneous shared window), the usual tools of shared manipulation are available. For example, participants can manipulate a shared cursor in this region and annotate/select portions of the region. All such changes are synchronized as usual and are made available in the window for the shared view of each participant. The invention provides support for participants to form interest groups for carrying out synchronous collaboration in different parts of the shared workspace. The interest groups operate on the shared workspace concurrently, as a part of the total synchronous collaboration involving all participants. Participants in an interest group can form, say, one shared view for themselves, and the windows for the view are made available within the membership of the interest group only. Support for forming interest groups, for having shared views per interest group, for dynamically starting and/or discontinuing any interest group, for dynamically changing the members comprising any interest group, for dynamically blocking out dynamic changes in the membership of any interest group, for keeping interest groups anonymous, and for keeping the presence of any interest group unknown outside its membership is provided by the invention in order to increase the flexibility of synchronous collaboration.
The invention supports interest groups comprised of only one member. Support for such interest groups includes all the shared views supported for interest groups of larger memberships. One particular kind of a view supported for such interest groups is an independent view. An independent view is an unknown shared view associated with an interest group which has an unchanging membership of one participant only. Independent views of a shared workspace exist in concurrence with any other shared views of the shared workspace. This allows to a participant working on the shared workspace independently, as for example in a slide show wherein a participant may want to see something on a previous slide without dragging the entire group with him, and yet not losing the synchrony of real-time collaboration. For example, consider collaborative development wherein a specialist may be required to incorporate group suggestions into a workspace immediately, and without restricting the group to watching him work. The specialist can work using an independent view. FIG. 2 shows a collaboration containing an independent view along with a shared, heterogeneous view.
Each of the multiple independent views available to a participant can be presented to him in a separate window. As an option, the position of each view is available to him as a bookmark and he can shift from view to view within the same window. The participant can use this option in the context of shared views also to reduce the number of windows available to him at any time. Participants can generate bookmarks for the purpose of keeping track of views/positions in the shared workspace that are of interest to them.
The invention supports various ways of aligning views so as to allow the transfer of views from audience to audience. For example, in order to allow a participant to bring to the notice of a larger audience the view contained in his independent window, the invention provides support for any participant to take control of an ordinary, shared view and use a xe2x80x9cGOTOxe2x80x9d command to make it overlap with an independent view. The xe2x80x9cGOTOxe2x80x9d command can be used to make an independent view coincide with an ordinary, shared view also. Any view can be used to start off another view of the workspace. The new view can be an ordinary, shared view or an independent view. The initial value of the new view is the same as that for the view starting it off. An independent view can be overlaid on top of an ordinary, shared view. In this case, the independent view will coincide with the shared view, and shifts in the shared view will be reflected in the independent view identically until the overlaying of the independent view is turned off. Similarly, an ordinary, shared view can be overlaid on an independent view. The shared view will then reflect the independent view whenever the overlaying is on. Both the xe2x80x9cGOTOxe2x80x9d command and overlaying can be provided to participants as a button, icon, graphical object, keyboard input or some combination thereof.
The invention supports specific access and sharing rights for each participant. For any participant, the rights can be different for each of the workspace views/interest groups available to him. The access rights include read only, and read and write. Sharing rights of a participant for a view or interest group indicate which participants, including himself or herself, the participant can add or remove from the view or interest group. When a participant has only read rights to a shared view, then he cannot add/delete data through that view. At most he can pass his comments on the view to others by manipulating the shared cursor and/or by selecting from-the common data contained in the view. Selected data, if any, is highlighted as usual for all participants sharing the view. Access and sharing rights of any participant can be defined/changed on an individual view or interest group basis or a multiple view or interest group basis. For a participant, the rights can be changed in agreement with the participant, or independently of the participant. The authority to change the access rights of others can be vested in a subset of the collaboration participants. This subset can be changed dynamically. For example, in the case of an interest group, the authority can be delegated to the person in charge of actually running the interest group. The authority can be withdrawn when the interest group is wound up, or whenever it is necessitated earlier. Such authority can be delegated or withdrawn in agreement with the recipient(s) of the authority, or independently of the recipient(s).
It is therefore an object of the present invention to provide computer software which supports real-time collaboration of multiple participants, each having shared and independent views of the shared workspace.
According to the invention, there is provided effective real-time synchronous collaboration among possibly widely dispersed participants by making a multiplicity of different views of the shared workspace available to individual participants. Multiple views per participant are provided. Some of the views seen by a participant can be shared views with the usual common cursor and annotation tools. The shared views need not be homogeneous, which means that for a given view, each participant can see more than just some common data in his or window for the view. What the participant sees separately from the common data can make his or her shared view different from that of other participants. Of course, the participant""s view can be different due to a syntactically different display of data, but more fundamentally, the view can be different due to different data being exposed in the view. Some of the views seen by a participant can be independent views. This allows to the participant synchronous working with the shared workspace alone on his or her own. Participants can modify the workspace through their views in a synchronized manner provided the sharing and access rights of their views allow them to do so.